using System;
using System.Collections.Generic;
using BanZuiCloudControlAgent.Core.Tasks.Enums;

namespace BanZuiCloudControlAgent.Core.Tasks.Models
{
    /// <summary>
    /// 任务信息模型，用于存储任务的基本信息
    /// </summary>
    public class TaskInfo
    {
        /// <summary>
        /// 任务ID
        /// </summary>
        public string TaskId { get; set; }
        
        /// <summary>
        /// 任务类型
        /// </summary>
        public TaskType TaskType { get; set; }
        
        /// <summary>
        /// 任务状态
        /// </summary>
        public TaskState Status { get; set; }
        
        /// <summary>
        /// 任务优先级
        /// </summary>
        public TaskPriority Priority { get; set; }
        
        /// <summary>
        /// 任务进度（0-100）
        /// </summary>
        public int Progress { get; set; }
        
        /// <summary>
        /// 任务创建时间
        /// </summary>
        public DateTime CreateTime { get; set; }
        
        /// <summary>
        /// 任务开始时间
        /// </summary>
        public DateTime? StartTime { get; set; }
        
        /// <summary>
        /// 任务完成时间
        /// </summary>
        public DateTime? CompleteTime { get; set; }
        
        /// <summary>
        /// 任务结果描述
        /// </summary>
        public string ResultMessage { get; set; }
        
        /// <summary>
        /// 任务错误信息
        /// </summary>
        public string ErrorMessage { get; set; }
        
        /// <summary>
        /// 任务参数
        /// </summary>
        public Dictionary<string, object> Parameters { get; set; }
        
        /// <summary>
        /// 构造函数
        /// </summary>
        public TaskInfo()
        {
            Parameters = new Dictionary<string, object>();
        }
    }
} 